﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using BussinesLogic;
using System.Globalization;

namespace FoliaturaDigital
{
    public partial class Frm_Portada : Form
    {
        private Foliatura.Controller controlador;
        bool isEdit = false;
        bool isNuevo = false;
        
        public Frm_Portada()
        {
            this.controlador = Foliatura.Controller.Instance();
            InitializeComponent();
        }
        
        private void Frm_Portada_Load(object sender, EventArgs e)
        {
            this.controlador.portada = Portada.getPortadabyId(this.controlador.expediente.id);
            if (this.controlador.portada == null)
            {
                this.controlador.portada = new Portada();
                isEdit = isNuevo = true;
            }

            fillData();
            
            enableAll(isNuevo);
        }

        private void fillData()
        {
            if (this.controlador.portada.Fecha == DateTime.Parse("01/01/0001")) this.controlador.portada.Fecha = DateTime.Now;
            if (controlador.portada != null)
            {
                this.txtAsunto.Text = this.controlador.portada.Asunto;
                this.txtNoOficio.Text = this.controlador.portada.CodDocumento;
                this.txtFuncionarioRemitente.Text = this.controlador.portada.FuncionarioRemitente;
                this.txtUnidadRemitente.Text = this.controlador.portada.UnidadRemitente;
                this.dtpFecha.Value = this.controlador.portada.Fecha;
            }
            this.lblNoExpediente.Text = this.controlador.expediente.NoExpediente;
            
        }
        private void enableAll(bool enabled)
        {
            
            this.txtAsunto.Enabled = enabled;
            this.txtNoOficio.Enabled = enabled;
            this.txtFuncionarioRemitente.Enabled = enabled;
            this.txtUnidadRemitente.Enabled = enabled;
            this.dtpFecha.Enabled = enabled;
            if (this.isEdit)
            {
                this.btnEditar.Text = "Cancelar";
                this.btnGuardar.Enabled = true;

            }
            else
            {
                this.btnEditar.Text = "Editar";
                this.btnGuardar.Enabled = false;

            }
        }

        private void bindData()
        {
            this.controlador.portada.Asunto = this.txtAsunto.Text;
            this.controlador.portada.CodDocumento = this.txtNoOficio.Text;
            this.controlador.portada.FuncionarioRemitente = this.txtFuncionarioRemitente.Text;
            this.controlador.portada.UnidadRemitente = this.txtUnidadRemitente.Text;
            this.controlador.portada.NumFolios = 0;
            this.controlador.portada.Fecha =  this.dtpFecha.Value;
            this.controlador.portada.NoExpediente = this.controlador.expediente.NoExpediente; 
        }

        private void btnGuardar_Click(object sender, EventArgs e)
        {
            bindData();
            if (this.isNuevo)
            {
                bindData();
                try
                {
                    this.controlador.portada.Create();
                    fillData();

                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
            }
            else
            {
                bindData();
                try
                {
                    this.controlador.portada.Update();
                    fillData();

                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
            }
            
        }

        private void btnEditar_Click(object sender, EventArgs e)
        {
            this.isEdit = !this.isEdit;
            
            enableAll(this.isEdit);
        }

        private void btnSalir_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        
    }
}
